﻿using PdfSharp.Fonts;
using System;
using System.IO;

namespace DataGrid导入导出.Base
{
    public class CustomFontResolver : IFontResolver
    {
        public byte[] GetFont(string fontName)
        {
            if (fontName != null && File.Exists(fontName))
            {
                return File.ReadAllBytes(fontName);  // 从文件中读取字体内容
            }
            return null;  // 如果字体文件不存在，返回 null
        }

        public FontResolverInfo? ResolveTypeface(string familyName, bool bold, bool italic)
        {
            // 字体路径（假设字体文件已经存放在某个文件夹下）
            string fontPath = null;

            // 处理 "Microsoft YaHei UI" 字体
            if (familyName == "Microsoft YaHei UI")
            {
                // 根据是否为粗体或斜体来选择对应的字体文件
                if (bold && italic)
                {
                    fontPath = @"C:\Windows\Fonts\msyhl.ttc";  // 粗斜体字体
                }
                else if (bold)
                {
                    fontPath = @"C:\Windows\Fonts\msyhbd.ttc";  // 粗体字体
                }
                else if (italic)
                {
                    fontPath = @"C:\Windows\Fonts\msyhi.ttc";  // 斜体字体
                }
                else
                {
                    fontPath = @"C:\Windows\Fonts\msyh.ttc";  // 正常体字体
                }
            }

            // 如果找到合适的字体，返回字体信息
            if (fontPath != null && File.Exists(fontPath))
            {
                return new FontResolverInfo(fontPath);
            }

            // 如果找不到字体，返回 null
            return null;
        }
    }
}